package com.demo2do.fms.admin.service.supplier;

import java.util.List;

import com.demo2do.core.entity.page.Page;
import com.demo2do.fms.admin.entity.search.supplier.SupplierAuditSearch;
import com.demo2do.fms.entity.supplier.common.AuditStatus;
import com.demo2do.fms.entity.supplier.common.Supplier;

/**
 * 
 * @author mohanlan
 *
 */
public interface SupplierAuditService {
    
    /**
     * 
     * @param status
     * @return
     */
    public int countSupplierByStatus(AuditStatus[] status);
    
    /**
     * 
     * @param status
     * @param syncStatus
     * @return
     */
    public int countSupplierByStatus(AuditStatus status, String syncStatus);
    
    /**
     * @param status
     * @param parent
     * @return
     */
    public int countSupplierByStatus(AuditStatus[] status, Supplier parent);
    
    /**
     * 
     * @param status
     * @param page
     * @return
     */
    public List<Supplier> listSupplierByStatus(AuditStatus[] status, Page page);
    
    /**
     * 
     * @param status
     * @param syncStatus
     * @param page
     * @return
     */
    public List<Supplier> listSupplierByStatus(AuditStatus status, String syncStatus, Page page);
    
    /**
     * @param status
     * @param parent
     * @param page
     * @return
     */
    public List<Supplier> listSupplierByStatus(AuditStatus[] status, Supplier parent, Page page);
    
    /**
     * 
     * @param search
     * @param page
     * @return
     */
    public List<Supplier> searchSupplier(SupplierAuditSearch search, Page page);
    
    /**
     * 
     * @param supplier
     * @param operator
     */
    public void introduce(Supplier supplier, Long operator);
    
    /**
     * 
     * @param supplier
     * @param operator
     */
    public void onAdopt(Supplier supplier, Long operator);
    
    /**
     * 
     * @param supplier
     * @param operator
     */
    public void changingAdopt(Supplier supplier, Long operator);
    
    /**
     * 
     * @param supplier
     * @param comment
     * @param operator
     */
    public void introduceReject(Supplier supplier, String comment, Long operator);
    
    /**
     * 
     * @param supplier
     * @param comment
     * @param operator
     */
    public void changingReject(Supplier supplier, String comment, Long operator);
    
}
